package com.sfj.system.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sfj.system.dto.task.*;
import com.sfj.system.entity.TaskEntity;
import com.sfj.system.entity.TaskProblemEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
/**
 * @author kaka
 * @Date 2025/07/01
 */


@Mapper
public interface TaskMapper {
    int insert(TaskEntity task);
    int update(TaskEntity task);
    int delete(Integer taskId);
    TaskGetQueryDTO selectById(Integer taskId);
    IPage<TaskEntity> queryTaskInfoList(Page<TaskEntity> page, @Param("query") TaskQueryDTO queryDTO);

    void updReceiveAndStatus(TaskGetQueryDTO task);
    void updProcessAndStatus(TaskGetQueryDTO task);
    void updReviewAndStatus(TaskGetQueryDTO task);
    void updStatus(@Param("taskId") Integer taskId,@Param("status")  String status);

    TaskTotalDTO getTaskStatistics();
    List<TaskReportDTO> getReport(@Param("query") TaskQueryReportDTO queryDTO);
}
